HTTP Runtime
Código gestionado
Se ejecuta dentro de un proceso host no gestionado
Diseñada para una disponibilidad del 100%
Procesamiento asincrónico de los pedidos
Multihilo
Sustitución de las ISAPI
Internet Server Application Programming Interface
Lista de módulos HTTP
Lista de módulos HTTP
Clases gestionadas
Cada módulo implementa una interfaz específica
Por ejemplo: administración del estado o la seguridad
Todos los pedidos son enrutados a través de la misma lista de módulos HTTP
Adición de módulos se realiza a través del Config.web
Request handler
Clases gestionadas
Múltiples request handlers por cada aplicación
Pero solo uno por URL
Configuración
Conceptos y arquitectura
Fichero de configuración: Config.web
Basado en XML
Fichero es mantenido dentro del subdirectorio de la aplicación
Cambios son detectados automáticamente
Arquitectura de configuración jerárquica
Influye en el subdirectorio actual y en todos sus subdirectorios
(Gp:) Root
Dir
(Gp:) Sub
Dir1
(Gp:) Sub
Dir2
(Gp:) Config.web
Configuración
Ejemplo de Config.web
Configuración
Configuración por defecto y personalidada
Config.web está localizado en %windir%Microsoft.NETFrameworkVersion
Conjunto estándar manipuladores de la sección de configuración
Características de los navegadores soportados, mensajes de error personalizados, etc
Configuración personalizada
Extienda el conjunto de manipuladores de sección con los suyos propios
Implementación de la interface:
System.Web.Configuration.IConfigurationSectionHandler
Problemas con
Directorios virtuales
Ficheros que no son ASP.NET
Jerarquía de clases
System.Web.UI.WebControls
(Gp:) ListControl
(Gp:) ListBox
(Gp:) CheckBoxList
(Gp:) Button
(Gp:) Table
(Gp:) WebControl
(Gp:) System.Web.UI.Control
(Gp:) System.Object
(Gp:) TextBox
(Gp:) …
(Gp:) …
Características
Sintaxis y lenguajes soportados por ASP.NET
Ejemplos
Proceso de ejecución
Ensamblado
Administración de estado, Seguridad, y manipulación de eventos
Lógica de procesamiento e interface
No más unión del código HTML código script
Fácil mantenimiento de la aplicación
Completa separación entre la interfaz y la lógica de procesamiento
No existe código de implementación dentro de los ficheros HTML
Ficheros para los diseñadores y ficheros para los programadores
.aspx
.cs
.cs
Lenguajes soportados
Visual Basic
VBScript no es gestionado !
JScript
C#
Nuevo lenguaje basado en componentes
C++
Extensiones gestionadas para C++
Otros: Cobol, Smalltalk, …
Common Language Specification (CLS)
Sintaxis
Directivas
Bloques de declaración de código
[ lines of code ]
“Render Blocks”
Sintaxis de control HTML
Sintaxis
Sintaxis de controles personalizados
Controles en el servidor personalizados
Propiedad de control en el servidor
Subpropiedad
Eventos asociados a un control en el servidor
Sintaxis
Etiquetas de objetos en el servidor
Directivas Include en el servidor
Comentarios en el servidor
Ejemplo ASP.NET
void SubmitBtn_Click(Object Sender, EventArgs E)
{
Message.Text = "Hi "+Name.Text;
}
Name:
Title: Ejemplo ASP.NET
Title: Ciclo de ejecución de un .aspx
IIS
ASP.NET Runtime
(Gp:) Instantiate controls
(Gp:) Parse .aspx file
(Gp:) Generate page class
Request .aspx file
Response
Client
Server
Title: Proceso de ejecución
Body: Compilación, cuando la página es requerida por vez primera.
Microsoft intermediate language (MSIL)
Estilo lenguaje ensamblador
Independiente del CPU
Provee una capa de abstracción del hardware
MSIL es ejecutado por el common language runtime
Common language runtime
Compilador Just-in-time (JIT)
Código gestionado
Title: Administración de “Estado”
Body: Estado de la aplicación
Qué es una “aplicación”?
Ficheros, páginas, módulos, y código ejecutable
Un directorio virtual y sus subdirectorios
Variables de estado de la aplicación
Información global
Reglas de Implementación
Uso de recursos del sistema
“Lock” y “unlock” su información global
Cuidado con las variables globales en ambientes multihilo
Pérdida de estado cuando el servidor es “destruido”
Imposibilidad de compartir estados entre servidores
Title: Administración de “Estado”
Body: Estado de la sesión
Qué es una sesión?
Restringido a aplicaciones lógicas
Contexto en el cuál un usuario se comunica con un servidor
Funcionalidad
Pedidos de identificación y clasificación
Almacenamiento de datos a través de multiples y sucesivos pedidos
Eventos de Sesión
Liberación automatica de datos de sesión
Proceso servidor de estados en .NET
Title: Modelo de eventos
Body: Eventos se generan en el cliente, pero se manipulan en el servidor
(Gp:) Server
(Gp:) Cliente Web
(Gp:) parse message
(Gp:) evento
(Gp:) event handler
(Gp:) event
message
(Gp:) response
(Gp:) Llamada al manipulador apropiado
Title: ASP.NET avanzado
Body: Web Forms
Controles en el Servidor
Trabajando con datos
Aplicaciones Web
Migrando de ASP hacia ASP.NET
Página anterior | Volver al principio del trabajo | Página siguiente |